Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor code changes #917

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

devpatel43543
Copy link

@devpatel43543 devpatel43543 commented Nov 23, 2024

hii @stleary

i have refactored changes in following 3 files to enhance readability and maintainability:

  1. Decompose Conditional in valueToString() (JSONWriter.java):

    • Extracted a complex condition into a method (isDirectlyConvertibleToJSON()) to improve readability.
      Commit
  2. Extract Method in toString() (HTTP.java):

    • Divided the method into smaller, focused methods to follow the Single Responsibility Principle.
      Commit
  3. Rename Variable in JSONObject:

    • Renamed variables (xjsonTokener, ccurrentChar) for better clarity and readability.

@@ -328,8 +328,7 @@ public static String valueToString(Object value) throws JSONException {
// Instead we will quote it as a string
return JSONObject.quote(numberAsString);
}
if (value instanceof Boolean || value instanceof JSONObject
|| value instanceof JSONArray) {
if (isDirectlyConvertibleToJSON(value)) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please revert this change. A separate method is not needed for this conditional. You can add a clarification comment if you want.

@@ -349,6 +348,10 @@ public static String valueToString(Object value) throws JSONException {
return JSONObject.quote(value.toString());
}

private static boolean isDirectlyConvertibleToJSON(Object value) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General rule: All methods must include JavaDoc comment

sb.append(jo.getString("Status-Code"));
sb.append(' ');
sb.append(jo.getString("Reason-Phrase"));
appendResponseHeader(sb, jo);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please revert all changes to toString(). Refactoring this code is a judgement call. In this case, I trust Douglas Crockford's decision to include all HTTP string conversions in a single method.

@stleary
Copy link
Owner

stleary commented Nov 26, 2024

@devpatel43543 review comments added. The changes to JSONObject look good. All else should be reverted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants